package packageWA;

import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import javax.swing.JComboBox;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

public class Encuesta extends JFrame {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private JPanel contentPane;
	private int encuesta;
	private ArrayList<JComboBox> combo;

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					//Encuesta frame = new Encuesta(String empresa, int codigo);
					//frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the frame.
	 * @throws SQLException 
	 */
	public Encuesta( final String empresa, String titulo) throws SQLException {
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		//setBounds(100, 100, 737, 464);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);
		
		int i = 1;
		
		//Obtener codigo encuesta
		ResultSet rs = GestorBD.getInstance().consulta("SELECT idEncuesta FROM encuesta where Titulo='" + titulo + "';");

		rs.next();
		encuesta = rs.getInt("idEncuesta");

		
		combo = new ArrayList<JComboBox>();
		
		//Cargar preguntas
		ResultSet rs2 = GestorBD.getInstance().consulta("SELECT enunciado FROM Pregunta where idEncuesta='" + rs.getInt("idEncuesta") + "';");
		while(rs2.next()){
			JLabel lblPregunta = new JLabel("New label" + i);
			lblPregunta.setBounds(47, 66+(25*i), 567, 16);
			lblPregunta.setText(rs2.getString("enunciado"));
			contentPane.add(lblPregunta);
			
			JComboBox cbxPuntuacion = new JComboBox();
			cbxPuntuacion.setBounds(889, 66+(25*i), 69, 27);
			contentPane.add(cbxPuntuacion);
			cbxPuntuacion.addItem("1");
			cbxPuntuacion.addItem("2");
			cbxPuntuacion.addItem("3");
			cbxPuntuacion.addItem("4");
			cbxPuntuacion.addItem("5");
			
			combo.add(cbxPuntuacion);
			
			i++;
		}
		
		/*for(i=1;i <= 10; i++){//En funcion de la base de datos y la cantidad de preguntas que tenga cada encuesta
		
		JLabel lblPregunta = new JLabel("New label" + i);
		lblPregunta.setBounds(47, 66+(25*i), 567, 16);
		contentPane.add(lblPregunta);
		
		JComboBox cbxPuntuacion = new JComboBox();
		cbxPuntuacion.setBounds(889, 66+(25*i), 69, 27);
		contentPane.add(cbxPuntuacion);
		cbxPuntuacion.addItem("1");
		cbxPuntuacion.addItem("2");
		cbxPuntuacion.addItem("3");
		cbxPuntuacion.addItem("4");
		cbxPuntuacion.addItem("5");
		
		}*/
		
		setBounds(100, 100, 1000, 444+(25*(i-12)));
		
		JButton btnGuardarEncuesta = new JButton("Guardar encuesta");
		btnGuardarEncuesta.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				
				int i = 0;
				
				//Guardar Respuesta
				String sql = null;
				try {
					ResultSet rs = GestorBD.getInstance().consulta("SELECT idPregunta FROM pregunta where idEncuesta=" + encuesta + ";");
					while(rs.next()){

						sql = "INSERT INTO Respuesta (idEmpleado,idPregunta, idEncuesta, respuesta) VALUES (9999," + rs.getInt("idPregunta") + ", " + encuesta + ", '" + combo.get(i).getSelectedItem() + "');";

						GestorBD.getInstance().insertar(sql);
						i++;
					}
				} catch (SQLException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				}
				
				//Guardar encuesta de la empresa
				
				//Obtener cif
				ResultSet rs2 = null;
				try {
					rs2 = GestorBD.getInstance().consulta("SELECT CIF FROM empresa where Nombre='" + empresa + "';");
				} catch (SQLException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				}
				try {
					rs2.next();
				} catch (SQLException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				}
				
				try {
					sql = "INSERT INTO encuestaempresa (cifEmpresa, idEncuesta) VALUES ('" + rs2.getString("CIF") + "','" + encuesta + "');";
				} catch (SQLException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				}
				try {
					GestorBD.getInstance().insertar(sql);
					//Introducir el empleado que hizo la encuesta
					AnadirEmpleado ae = new AnadirEmpleado(rs2.getString("CIF"));
					ae.setVisible(true);
					dispose();
				} catch (SQLException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				}
				
			}
		});
		btnGuardarEncuesta.setBounds(380, 391+(25*(i-13)), 140, 29);
		contentPane.add(btnGuardarEncuesta);
		
		JButton btnCancelar = new JButton("Cancelar");
		btnCancelar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				dispose();
			}
		});
		System.out.println(i);
		System.out.println(391+(25*(i-12)));
		btnCancelar.setBounds(520, 391+(25*(i-13)), 117, 29);
		contentPane.add(btnCancelar);
		
		JLabel lblEncuesta = new JLabel("Encuesta: " + titulo);
		lblEncuesta.setBounds(275, 38, 179, 16);
		contentPane.add(lblEncuesta);
		
		JLabel lblEmpresa = new JLabel("Empresa: " + empresa);
		lblEmpresa.setBounds(575, 38, 221, 16);
		contentPane.add(lblEmpresa);
	}

}
